package cn.lcsjsxy.yxz.keywords.import_package;

import cn.lcsjsxy.yxz.comprehensiveexercises1.Account;
import cn.lcsjsxy.yxz.comprehensiveexercises1.Bank;
//import cn.lcsjsxy.yxz.keywords.Person;

import java.util.*;

public class package_ {
    //5.15
    //package_import

    //1.
    //package的使用
    // 1.为了更好的实现项目中类的管理，提供包的概念
    // 2.使用package声明类或接口所属的包，声明在源文件的首行
    // 3.包，属于标识符，遵循标识符的命名规则、规范(xxxyyyzzz)、“见名知意”
    // 4.每"."一次，就代表一层文件目录。
    //  ------同一个包下,不能命名同名的接口和类-----

    //MVC设计模式
    //三个层次:       视图型层       控制器层       数据模型层
    //这种将程序输入输出、数据处理，以及数据的展示分离开来的设计模式使程序结构变的灵活而且清晰，
    // 同时也描述了程序各个对象间的信方式，降低了程序的耦合性。

    //2.
    //import关键字
    //import:导入
    // 1. 在源文件中显式的使用import结构导入指定包下的类、接口
    // 2. 声明在包的声明和类的声明之间
    // 3. 如果需要导入多个结构，则并列写出即可
    // 4. 可以使用"xxx.*"的方式，表示可以导入xxx包下的所有结构
    // 5. 如果使用的类或接口是java.lang包下定义的，则可以省略import结构
    // 6. 如果使用的类或接口是本包下定义的，则可以省略import结构
    // 7. 如果在源文件中，使用了不同包下的同名的类，则必须至少有一个类需要以全类名的方式显示。
    // 8. 使用"xxx.*"方式表明可以调用xxx包下的所有结构。但是如果使用的是xxx子包下的结构，则仍需要显式导入

    //import static:导入指定类或接口中的静态结构:属性或方法。

    public static void main(String[] args) {

        String info = Arrays.toString(new int[]{1, 2, 3});

        Bank bank = new Bank();

        ArrayList list = new ArrayList();
        HashMap map = new HashMap();

        Scanner s = null;

        System.out.println("hello");

        Person p = new Person();

        Account acct1 = new Account(1000);
        //全类名的方式 :
        //zhonghelianxi2.Account acct2 = new zhonghelianxi2.Account(1000,2000,0.0123);

        Date date = new Date();
        //java.apl.Date date1 = new java.sql.Date(114514);


    }

}
